Interactive program guide systems and processes

ABSTRACT

Interactive program guide systems and related processes are provided which can automatically tune a television, or program a VCR, based on program selections made from program schedule information displayed on a television or other suitable video monitor. The interactive program guide is preferably implemented using a microprocessor-controlled set-top box that is coupled to the viewer&#39;s television set. The set-top box receives program schedule information and software from a headend telecasting center. Preferably, program schedule information for the current day and at least six subsequent days is stored in a memory within the set-top box. The interactive program guide provides a display mode for allowing the viewer to apply a restrictive search selection criterion and a nonrestrictive sort attribute to the program schedule information.

BACKGROUND OF THE INVENTION

[0001] This invention relates to television program guide systems andparticularly to interactive television program guide systems and relatedprocesses that can automatically tune a television, or program a videocassette recorder (VCR), based on program selections made from programschedule information displayed on a television or other suitable videomonitor. More particularly, this invention relates to interactivetelevision program guide systems and related processes that provide anintuitive search utility for allowing a viewer to locate programs ofinterest by applying a restrictive search selection criterion and anonrestrictive sort attribute to program schedule information.

[0002] In response to viewer demand, cable and satellite telecastingservices have been improving programming variety, mainly by increasingthe number of program channels available to their customers. Forexample, many cable telecasting services now offer several dozen programchannels, and it is expected that this number will steadily increase asmore cable services replace their coaxial cable networks with fiberoptic networks. It is expected that satellite telecasting services alsowill continue to improve programming variety by increasing the number ofprogram channels available to their customers.

[0003] Needless to say, improved programming variety is welcomed by theviewing public, but it does not come without cost. One problemfrequently encountered by viewers is that the increased number ofchannels has made it difficult to quickly locate and tune to programs ofinterest. Before cable television became popular, it was common practicefor viewers to briefly sample the program being broadcast on each of thefew aerial broadcast channels that were available in order to select aprogram to watch. However, this technique, known as “channel surfing,”is difficult to do when one has to consider programs on several dozenchannels, and it is possible that in doing so, a viewer will miss anundesirably large segment of the program ultimately selected forviewing.

[0004] Another concern is that the increased number of channels makes itmore likely that two programs of interest will be telecast at any giventime. Viewers therefore often find it necessary to record one programfor later viewing while another program of interest is being watched.Thus, as the number of channels provided by telecasting servicesincreases, the need for a system and process that simplifies thenotoriously difficult task of scheduling programs for VCR recordingbecomes more pressing.

[0005] Over the past several years, television viewers have grownaccustomed to a scrolling television program guide that is offered bymany telecasting services in the United States. One such guide, known asthe Prevue Channel, presents to the viewer (on a channel selected by thetelecasting service), a scrolling grid containing program scheduleinformation for each channel offered by that telecasting service. Thehorizontal axis of the scrolling grid identifies program schedule times,and the vertical axis identifies program channels. Typically, one and ahalf hours of program schedule information are provided, starting at acurrent time period (typically one half hour).

[0006] The grid format used by the Prevue Channel for presenting programschedule information has been favorably received by the viewing public.Essentially, the body of the grid contains an array of cells, each cellrepresenting a program being telecast or to be telecast on the channelidentified on the vertical axis, during the time periods specified onthe horizontal axis. The size of each cell (i.e., the cell width)represents the length of the program (spanning one or more timeperiods).

[0007] Although the scrolling grid program guide has proven valuable toviewers over the past several years, it is not an interactive programguide, and therefore, it lacks certain capabilities that viewers wouldfind very useful. For example, the scrolling grid does not have theability to present program schedule information for telecast timesbeyond a relatively short period from the current time (e.g., one and ahalf hours). Also, the grid scrolls at a pace that the viewer cannotcontrol. Thus, it may take several minutes for the scrolling grid toadvance to program schedule information that the viewer wishes toconsider. Finally, the viewer cannot directly use the scrolling grid fortuning a television to a desired channel or programming a VCR.

[0008] Attempts have been made to provide interactive program guideswith such capabilities. One system is described in U.S. Pat. No.4,706,121; however, for several reasons, the system described thereinhas disadvantages. For instance, the system described in U.S. Pat. No.4,706,121 allows a viewer to choose a plurality of user programselection criteria which are combined to present a list of programsmeeting the combined criteria. This operates to restrict the display ofprogram schedule information only to those programs that meet thecombined user program selection criteria. When the selection criteriaare activated, the viewer is unable to select for viewing or recordingany program that does not meet the selection criteria because suchprograms would not be listed. In order to select such a program, theviewer must either deactivate the selection criteria, or try a differentcombination of criteria (or perhaps a single criterion) in order tocapture a program of interest within the program list.

[0009] Moreover, the approach taken in U.S. Pat. No. 4,706,121 ofcombining user program selection criteria may often lead to anundesirably restricted program listing. In fact, it is possible that noprograms at all will be displayed in a list because none meets theoverly restrictive combination of user program selection criteria. Ifthe viewer then turns the selection criteria selection off, the entireschedule is made available to the viewer, but in an order defined by thetelecasting service (e.g., typically by telecast time and channel). Theviewer is not provided with the ability to sort, without restricting,either the full program listing or a restricted program listing in ameaningful way.

[0010] Thus, it would be desirable to provide interactive program guidesystems and related processes that allow a viewer to apply anonrestrictive sort attribute to program schedule information inaddition to, or as an alternative to, a restrictive selection criterion.

[0011] It would also be desirable to provide interactive program guidesystems and related processes in which the telecasting service candefine sets of nonrestrictive sort attributes and restrictive selectioncriteria that the viewer can apply to the program schedule information.

[0012] It would further be desirable to provide interactive programguide systems and related processes in which the telecasting service candefine different sets of nonrestrictive sort attributes for the viewerto choose from depending upon a restrictive selection criterion appliedto the program schedule information by the viewer.

[0013] It is important that interactive program guides be capable ofpresenting several days worth of program schedule information so thatthe viewer can schedule VCR recording of selected programs well inadvance of their telecast times. However, existing interactive programguides do not provide a convenient interface that allows the viewer toquickly select program schedule information for a particular date.

[0014] Thus, it would be desirable to provide interactive program guidesystems and related processes that provide a graphical user interfacefor displaying the dates for which program schedule information isavailable, and for allowing the user to select program scheduleinformation for a particular date.

[0015] In order to provide viewers with a full-featured interactiveprogram guide, it is typically necessary to use several differentscreens, each screen being associated with one or more features of thesystem. However, it has been determined that viewers often findthemselves lost in such systems, without a clear understanding of how toreturn a particular screen of interest in the system.

[0016] Thus, it would be desirable to provide interactive program guidesystems and related processes that include a menu that may be invoked bythe viewer from any screen of the interactive program guide, where themenu is used by the viewer to navigate through the various screens ofthe interactive program guide.

[0017] It would also be desirable to provide interactive program guidesystems and related processes in which the telecasting service coulddefine the available menu choices.

SUMMARY OF THE INVENTION

[0018] It is an object of this invention to provide interactive programguide systems and related processes that allow a viewer to apply anonrestrictive sort attribute to program schedule information inaddition to, or as an alternative to, a restrictive selection criterion.

[0019] It is also an object of this invention to provide interactiveprogram guide systems and related processes in which the telecastingservice can define nonrestrictive sort attributes and restrictiveselection criteria that the viewer can apply to the program scheduleinformation.

[0020] It is another object of this invention to provide interactiveprogram guide systems and related processes in which the telecastingservice can define different sets of nonrestrictive sort attributes forthe viewer to choose from depending upon a restrictive selectioncriterion applied to the program schedule information by the viewer.

[0021] It is a further object of this invention to provide interactiveprogram guide systems and related processes that contemporaneouslydisplay, on a single screen, the nonrestrictive sort attributes andrestrictive selection criteria available for the viewer to choose from,along with the program schedule information that meets the restrictiveselection criterion chosen by the viewer in the sort order defined bythe selected sort attribute.

[0022] It is even a further object of this invention to provideinteractive program guide systems and related processes that provide agraphical user interface for displaying the dates for which programschedule information is available, and for allowing the user to selectprogram schedule information for a particular date.

[0023] It is still a further object of this invention to provideinteractive program guide systems and related processes that include amenu that may be invoked by the viewer from any screen of theinteractive program guide, where the menu is used by the viewer tonavigate through the various screens of the interactive program guide.

[0024] It is yet a further object of this invention to provideinteractive program guide systems and related processes in which thetelecasting service can define the available menu choices.

[0025] In accordance with this invention, interactive program guidesystems and related processes are provided which can automatically tunea television, or program a VCR, based on program selections made fromprogram schedule information displayed on a television or other suitablevideo monitor. The interactive program guide is implemented preferablyusing a microprocessor-controlled set-top box that is coupled to theviewer's television set. The set-top box receives program scheduleinformation and software from a headend telecasting center. Preferably,program schedule information for the current day and at least sixsubsequent days is stored in a memory within the set-top box. Theprogram schedule information used in connection with the presentinvention may be generic, in the sense that the data comprising theprogram schedule information may be used for other purposes, such as byother set-top boxes having capabilities different from or additional tothose described above. Preferably, the program schedule informationincludes program titles, telecast times, channels, program descriptions,and other useful information.

[0026] The interactive program guide of the present invention operatesin several different viewer-selectable display modes in order to presentto, and acquire information from, a viewer. The primary display mode isthe Program Guide display mode. In this mode, the interactive programguide presents program schedule information in a familiar grid format.The viewer can use navigation keys on a remote control to move a cursorto a desired program. Once a program of interest has been located andhighlighted by the cursor, the viewer can use the remote control tocause the set-top box to tune to the selected program (“point andtune”), or to schedule the program for later viewing or recording (ifnot yet being telecast).

[0027] The interactive program guide of the present invention alsoprovides a Program Search display mode. The Program Search display modemay be used by the viewer to search a list of program scheduleinformation for programs desired to be viewed or recorded, using arestrictive search selection criterion and a nonrestrictive sortattribute to the program schedule information. The interactive programguide advantageously provides a contemporaneous display of the availableselection criteria and sort attributes, and the results obtained byapplying a selection criterion and/or sort attribute to the programschedule information. Preferably, the selection criteria and sortattributes are defined by the headend telecasting center, and they aretransferred to the set-top box as operational parameters along with thesoftware used to implement the interactive program guide. The headendtelecasting center may also define a default selection criterion and adefault sort attribute which are automatically applied to the programschedule information when the Program Search display mode is invoked.Moreover, the nonrestrictive sort attributes available to the viewer maybe a function of the particular restrictive user program selectioncriterion previously selected by the viewer.

[0028] The interactive program guide of the present invention alsoincludes two display modes that facilitate viewer navigation in theProgram Search display mode. The first, referred to as the Day to Viewdisplay mode, is used to navigate the Program Guide display mode toprogram schedule information for a particular date, and even morespecifically to a particular range of hours (i.e., “day part”) for thatselected date. The second, referred to as the Favorite Channel displaymode, allows the viewer to define a favorite channel line-up. After theviewer establishes a favorite channel line-up, the program scheduleinformation displayed in the Program Guide display mode is sorted inaccordance with the channels selected by the viewer. The favoritechannel line-up is preferably nonrestrictive. That is, the channelsselected by the viewer are moved to the beginning of the program guidein the sequence selected by the viewer, with the other channelsfollowing thereafter. The viewer's favorite channel line-up ispreferably not applied in the Program Search display mode.

[0029] The interactive program guide of the present invention alsoprovides a convenient menu (referred to herein as a “quickmenu”) thatthe viewer can invoke from any of the above-described display modes. Thequickmenu includes menu choices that allow the viewer to quickly switchfrom one of the above-described display modes to another. In addition tothe display mode choices, the quickmenu also includes menu choices thatoperate as short-cut navigation tools in the Program Guide display mode.For example, the viewer can select a quickmenu choice that causes theinteractive program guide to automatically navigate the program grid toprograms scheduled for telecast during prime time (e.g., starting at7:00 PM) irrespective of the current time. The quickmenu may alsoinclude context sensitive menu choices which are defined in accordancewith the display mode from which the quickmenu is invoked. The availablequickmenu choices, including default menu choices (i.e., the choicesdisplayed when the quickmenu is invoked) are preferably defined by theheadend telecasting center and transmitted to the set-top box asoperational parameters.

BRIEF DESCRIPTION OF THE DRAWINGS

[0030] The above and other objects and advantages of the presentinvention will be apparent upon consideration of the following detaileddescription, taken in conjunction with the accompanying drawings, inwhich like reference characters refer to like parts throughout, and inwhich:

[0031]FIG. 1 is a block diagram of a telecasting system which mayprovide the interactive program guide of the present invention;

[0032]FIG. 2 is a block diagram of a set-top box suitable forimplementing the interactive program guide of the present invention;

[0033] FIGS. 3-10 are sample screen displays which illustrate theoperation of the interactive program guide of the present invention;

[0034] FIGS. 11-28 are logic flow diagrams representing, at a functionallevel, a control program used to implement the interactive program guideof the present invention.

[0035]FIG. 29 is a sample screen display which illustrates the operationof an alternative embodiment of the interactive program guide of thepresent invention; and

[0036] FIGS. 30-33 are sample screen displays which illustrate theoperation of an abbreviated program guide provided in accordance withthe present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0037] Referring first to FIG. 1, a system 50 which provides theinteractive program guide of the present invention is described. Itshould be understood, however, that although the invention is describedin the context of a conventional cable telecasting system, theprinciples described herein also apply to satellite telecasting systems,as well as other systems that are suitable for providing televisionservices to viewers.

[0038] The system 50 includes a data center 52 and a headend telecastingcenter 54. The data center 52 includes a central computer system 56 forupdating and storing program schedule information. The program scheduleinformation maintained by the central computer system 56 is “complete”in the sense that it includes data to be used by all telecastingservices that provides the interactive program guide of the presentinvention. The data are also generic, in the sense that they may be usedby other systems not implementing the present invention. The programschedule information may be supplied to the central computer system 56through manual data entry (e.g., a keyboard) or it may be provided fromoutside sources via magnetic media (e.g., tape or disk), modem link orany other suitable data transfer mechanism. Program schedule informationincludes at least program channels, titles, and telecast times and mayinclude also program descriptions, telecast call signs, themes, andother information that may be used to classify programs into one or morecategories.

[0039] Using a satellite transmitter 58, the data center 52 transmitsthe program schedule information to the headend telecasting center 54via a satellite 60. The program schedule information is received by asatellite receiver 62, which in turn transfers the data to a headendcomputer 64. Preferably, the data center 52 provides a continuous feedof program schedule information to the headend telecasting center 54, sothat the headend telecasting center can quickly recover from anyunexpected loss of data. The continuous feed also ensures that theheadend telecasting center 62 is provided with any updates to theprogram schedule information soon after they are made. The data center52 preferably provides program schedule information to the headendtelecasting center 54 for the current day and at least six additionaldays following the current day.

[0040] As mentioned above, the data center 52 transmits program scheduleinformation for all telecasting services that provide the interactiveprogram guide of the present invention. However, cable operators likelywill not want viewers to see program schedule information for channelsthat they do not receive. Therefore, one function performed by theheadend computer 64 is selection of program schedule information foronly those channels that are offered by the headend telecasting center54.

[0041] The “reduced” set of program schedule information is supplied toa set-top computer 66. The set-top computer 66 formats the programschedule information for transmission on a cable network 68 along withtelevision program signals on a plurality of channels. (The formatteddata also are generic, in the sense that a set-top box not implementingthe present invention could use the formatted data for other purposes.)A plurality of set-top boxes 70 coupled to the cable network 68 receivethe television program signals and the program schedule information.

[0042] Any conventional method of transmitting the program scheduleinformation with the television program signals may be used inconnection with the present invention. Preferably, an out-of-bandchannel (e.g., channel 0) is used to provide a continuous feedtransmission of the program schedule information on the cable network68. The continuous feed transmission of the program schedule informationallows for quick restoration of the interactive program guide in theevent a set-top box 70 experiences a power interruption. It alsoprovides for prompt updating of schedule information in the eventschedule changes are made at the data center 52. Alternatively, theprogram schedule information may be transmitted using the verticalblanking interval (VBI) of one, some or all of the program channelsprovided by the headend telecasting center.

[0043] In addition to the program schedule information, the headendtelecasting center 54 may also transmit software modules and operationalparameters used by the set-top boxes 70 to implement the interactiveprogram guide of the present invention. Furthermore, the softwaremodules and operational parameters may originate from the data center 52rather than the headend telecasting center 54. The operationalparameters may include, for example, nonrestrictive sort attributes,restrictive selection criteria, menu choices, and default menuselections (all of which are described in greater detail below).

[0044] Turning now to FIG. 2, a set-top box 70 suitable for implementingthe interactive program guide of the present invention is described.Television signals, program schedule information, operationalparameters, and software modules transmitted on the cable network 68 arefirst received by tuning circuitry 72. The tuning circuitry 72 processesthe incoming signals in a conventional manner to extract the programschedule information, operational parameters, and software modules. Theprogram schedule information, operational parameters, and softwaremodules are provided to a control unit 74, which is preferablymicroprocessor-based. The control unit 74 stores the program scheduleinformation, operational parameters, and software modules in a memory76. The memory 76 is preferably random access memory (RAM), but it mayalso include read only memory (ROM) or flash memory to provide thecontrol unit 74 with the instructions necessary to perform the initialloading of program schedule information, operational parameters, andsoftware modules into the memory 76 when the set-top box 70 is turnedon. After the memory 76 is loaded, it preferably contains programschedule information for the current day and at least six subsequentdays.

[0045] In addition to directing the program schedule information,operational parameters and software modules to the control unit 74, thetuning circuitry 72 also tunes the set-top box 70 to a program channelselected by the viewer. The viewer can make channel selections by usinga remote control 78 that communicates with the control unit 74 throughan infrared receiver 80. Upon receiving the viewer's channel selection,the control unit 74 causes the tuning circuitry 72 to tune to theselected channel. The television signals on the selected channel arereceived by generator synch lock (“genlock”) circuitry 82. When theinteractive program guide is not on, the television signals on theselected channel pass through the genlock circuitry 82 and are receivedby a display 84, which is preferably a conventional television set. Thedisplay 84 displays the television program on the selected channel.

[0046] The remote control 78 may also be used by the viewer to invokethe interactive program guide of the present invention. When the controlunit 74 receives the appropriate command, it retrieves at least aportion of the program schedule information from the memory 76. Thecontrol unit 74 provides the retrieved data to digital video circuitry86 which converts the digital data to video signals. The interactiveprogram guide video signals are then provided to the genlock circuitry82 which synchronizes those signals to the television signals receivedfrom the tuning circuitry 72. The interactive program guide appears asan overlay on the television program that was being displayed on thedisplay 84. As the viewer uses the remote control 78 to navigate in theinteractive program guide, the appropriate program schedule informationis retrieved from the memory 76 by the control unit 74, and ultimatelydisplayed on the display 84. When the viewer deselects the interactiveprogram guide, the control unit 74 stops providing data to the digitalvideo circuitry 86, and the interactive program guide disappears.

[0047] The interactive program guide can be used by the viewer to selectprograms of interest for display on the display 84. The interactiveprogram guide may also be used to program a video cassette recorder(VCR) 88. The control unit 74 preferably exerts control over the VCR 88through the use of an infrared transmitter 90 which communicates with aninfrared receiver (not shown) of the VCR 88. Control preferably includesstarting and stopping recording by the VCR 88, and it may also includechannel selection as well as other more advanced control commands.

[0048] In FIG. 2, the display 84 and the VCR 88 are shown connected tothe genlock circuitry 82. Other arrangements are possible. For example,the VCR can be connected to the genlock circuitry 82 and the display 84can be connected to the VCR. However, if the viewer wishes to record andview different programs at the same time, the VCR 88 can be connecteddirectly to the cable network 68. The invention also contemplates theuse of a set-top box (not shown) that includes two tuners—one each forthe VCR 88 and the display 84.

[0049] In many respects the remote control 78 used with the set-top box70 may be conventional. For example, the remote control 78 may include aseries keys numbered 0 through 9 which may be used by the viewer tocause the tuning circuitry 72 to tune to a particular channel.Preferably, the remote control 78 includes the following nine additionalkeys for use in connection with the interactive program guide: RemoteControl Keys Guide Left Arrow Menu Right Arrow Select Page Forward UpArrow Page Backward Down Arrow

[0050] The interactive program guide of the present invention preferablyuses several different display modes in order to present and acquireinformation from the viewer. When the viewer presses the Guide key onthe remote control 78, the interactive program initially enters a“Program Guide” display mode.

[0051]FIG. 3 depicts a program guide screen 100 that is presented on thedisplay 84 when the Program Guide mode is initially invoked (i.e., bypressing the Guide key on the remote control 78). The program guidescreen 100 adopts the familiar grid format for presenting programschedule information to viewers. The screen 100 includes a time bar 102that is divided into a plurality of horizontally arranged time cells 104and a date cell 106. Each time cell 104 corresponds to a one half hourtime period of television programming. The date cell 106 identifies thetelecast date for the displayed program schedule information.

[0052] The screen 100 also includes a channel bar 108 that is dividedinto a plurality of vertically arranged channel cells 110. The channelcells 110 identify the channels on which the displayed programs are tobe (or are being) telecast.

[0053] The screen 100 further includes a program grid 112. Essentially,the program grid 112 displays at any given time, a subset of the programschedule information stored in the memory 76 (FIG. 2). The program grid112 is divided into a plurality of program cells 114. Each program cell114 contains information pertaining to a particular television program.In the preferred embodiment, this information always includes theprogram title, but as shown, the information for any particular programmay also include release year, MPAA rating (for movies), theme, etc. Thelength of each program cell 114 corresponds to the length of the programnamed therein, and may span more than one time period. Thus, the viewercan easily determine the start time, stop time and length of eachprogram by simply comparing the boundaries of the particular programcell 114 of interest to the time bar 102.

[0054] When the Program Guide display mode is initially invoked bypressing the Guide key on the remote control 78 (FIG. 2), the screen 100also includes a menu overlay or “quickmenu” 116. The quickmenu 116 canalso be invoked from any display mode of the interactive program guideby pressing the Menu key on the remote control 78 (FIG. 2). Thequickmenu 116 contains a plurality of menu choices which allow theviewer to control the operation of the interactive program guide. Onlythree menu choices are displayed at any given time—one in each of acurrent choice cell 118, a previous choice cell 120, and a next choicecell 122.

[0055] The viewer uses the Left and Right Arrow keys on the remotecontrol 78 (FIG. 2) to navigate in the quickmenu 116. Pressing the LeftArrow key moves the menu choice previously contained in the next choicecell 122 to the current choice cell 118. Pressing the Right Arrow keymoves the menu choice previously contained in the previous choice cell120 to the current choice cell 118. In this manner, the viewer canscroll through the various menu choices until the desired menu choice islocated. The quickmenu 116 preferably operates in an endless-loopfashion. When the desired menu choice appears in the current choice cell118, the viewer presses the Select key to activate the choice.

[0056] There are two ways to remove the quickmenu 116 from the screen100 (or from any other screen that the quickmenu 116 is displayed on).The Menu key on the remote control 78 (FIG. 1) acts as a toggle, so thatwhen the quickmenu 116 is displayed, the Menu key having first beenpressed, pressing the Menu key again removes it. The viewer can alsoclear the quickmenu 116 by pressing the Up Arrow key. When the quickmenu116 is cleared, the viewer can navigate in the underlying screen asappropriate for the current display mode.

[0057] Below the quickmenu 116 is a title bar 124. The title bar 124includes a clock cell 126 which displays the current time. The title bar124 also contains context sensitive information. For example, when thequickmenu 116 is displayed, the title bar 124 contains simple yetintuitive instructions on how to use the quickmenu 116.

[0058] The menu choices available in the quickmenu 116 can be broadlycategorized into two groups. The first group of choices provides theviewer with shortcuts for navigating in the Program Guide display mode.In the preferred embodiment, there are three shortcut choices or“navigation points” referred to as “Hot Picks,” “What's On” and “PrimeTime.” Selection of a navigation point from the quickmenu 116 simplyresults in a change in the data displayed in the screen 100 withoutchanging the display mode (i.e., the display mode remains ProgramGuide). The second group of choices are used by the viewer to selectfrom among the plurality of display modes used in the interactiveprogram guide. In the preferred embodiment, the display mode choices are“Program Guide,” “Program Search,” “Day To View” and “Favorite Channel.”

[0059] Referring now to FIG. 4, the program guide screen 100 is shown asit may appear when the Hot Picks navigation point is selected. It shouldalso be noted that the Hot Picks navigation point is automaticallyselected by the control unit 74 (FIG. 2) when the viewer invokes theinteractive program guide by pressing the Guide key on the remotecontrol 78 (FIG. 2). With the quickmenu 116 (FIG. 3) not displayed, thetitle bar 124 informs the viewer that the quickmenu 116 (FIG. 3) can beinvoked by pressing the Menu key.

[0060] As shown in FIG. 4, selection of the Hot Picks navigation pointcauses the interactive program guide to present a “premium channelline-up.” The premium channel line-up includes program scheduleinformation for programs available on premium channels during prime time(e.g., starting at 7:00 PM) on the current date (and not dependent oneither the current time period or the current channel to which thetuning circuitry 72 (FIG. 2) is tuned). Preferably, the premium channelline-up fits in one screen (i.e., the viewer does not need to scroll theprogram grid 112 in order to see program schedule information foradditional premium channels). The designation of particular channels as“premium channels” is preferably accomplished through the use ofoperational parameters stored in the memory 76 (FIG. 2). The premiumchannel designations may be made at the headend telecasting center 54(FIG. 1) in order to provide a consolidated presentation of programschedule information that may be of local interest.

[0061] A program cell 127 is shown highlighted in FIG. 4 to indicate thelocation of a cursor in the program grid 112. The viewer can navigate inthe program grid 112 (i.e., move the cursor) by using the Left, Right,Up, and Down Arrow keys on the remote control 78 (FIG. 2) in aconventional manner. For example, if the Right Arrow key is pressedwhile the program cell 127 is highlighted, the cursor moves to a programcell 128. The program cell 128 is then highlighted whereas the programcell 127 is no longer highlighted. If the Down Arrow key is pressedwhile either of the program cells 127 or 128 is highlighted, the cursormoves to a program cell 130.

[0062] The program grid 112, the time bar 102, and the channel bar 108scroll as needed when the viewer attempts to move the cursor beyond thedisplayed program schedule information. For example, if the viewerpresses the Left Arrow key while the program cell 127 is highlighted,the program grid 112 and the time bar 102 will scroll sufficiently farto the right to allow the display of program schedule information forthe program scheduled for telecast immediately prior to the oneindicated by the program cell 127. Continuation icons 132 indicate thatparticular programs start before or finish later than the timescurrently displayed in the time bar 102. The viewer can see when suchprograms start or end by scrolling the program grid 112 using the arrowkeys corresponding to the directions indicated by the continuation icons128.

[0063] From the viewer's perspective, the interactive program guideoperates as though the premium channel line-up is prepended to a “mainchannel line-up” comprising schedule information for other availablechannels. In addition, program schedule information is preferablydisplayed in an endless loop fashion. By default, the main channelline-up comprises program schedule information for all availablechannels (including the designated premium channels) arrangedsequentially by channel number. Thus, if the viewer presses the DownArrow key while a program cell 134 is highlighted, the program grid 112and the channel bar 108 advance such that program schedule informationfor the first channel in the main channel line-up (e.g., channel 2)appears in the last row of the program grid 112. On the other hand, ifthe Up Arrow key is pressed while the program cell 127 is highlighted,program schedule information for the last channel in the main channelline-up appears in the first row of the program grid 112. If the viewerthen chooses to scroll through the entire main channel line-up, programschedule information for the premium channel line-up reappears in theprogram grid 112. It should be noted, however, that the presentinvention allows for viewer modification of the main channel line-up (bysorting) through the use of the Favorite Channel display mode (describedbelow in connection with FIG. 9.)

[0064] The Page Forward and Page Backward keys are also used fornavigating in the Program Guide display mode. (The Left Arrow, RightArrow, Up Arrow, Down Arrow, Page Forward and Page Backward Keys arecollectively referred to as “navigation keys.”) For example, if the PageForward key is pressed while the premium channel line-up is displayed,the program grid 112 and the channel bar 108 scroll such that thepremium channel line-up is replaced with program schedule informationfor the first six channels in the sequential channel line-up. If thePage Backward key is pressed instead, the program schedule informationfor the last six channels in the sequential channel line-up isdisplayed.

[0065] The Select key on the remote control 78 (FIG. 2) is used by aviewer to select a highlighted program. After a program has beenselected, the viewer can choose to tune to the selected program, recordthe selected program, or simply see more information about the selectedprogram. These features are described in greater detail below inconnection with FIG. 10.

[0066]FIG. 5 depicts the program guide screen 100 as it appears when theviewer selects the Prime Time navigation point from the quickmenu 116(FIG. 3). Prime time program schedule information for the date shown inthe date cell 106 is displayed for the main channel line-up, startingwith the first channel (e.g., channel 2). The hours constituting “PrimeTime” are defined by operational parameters stored in the memory 76(FIG. 2); therefore, they may be set by either the data center 52.(FIG. 1) or the headend telecasting center 54 (FIG. 1). The displaystarts at the beginning of prime time and at the lowest channel (withoutregard to the current time period or the channel to which the tuningcircuitry 72 (FIG. 2) is currently tuned). If Prime Time is selected forthe current date, and the current time period is later than the startingPrime Time hour defined by the operating parameters, the program grid112 preferably displays program schedule information starting at thebeginning of prime time if the data are still available. If the datahave been discarded because they are no longer valid, program scheduleinformation is displayed starting at the beginning of the database.Alternatively, the invention may be implemented so that the next primetime period (tomorrow's) is displayed.

[0067] In the example shown in FIG. 5, the time bar 102 indicates thatprime time scheduling has been set to start at 7:00 PM. A program cell136 is shown highlighted to indicate the location of the cursor. Theviewer can use the six navigation keys on the remote control 78 tonavigate in the program grid 112, as described above in connection withFIG. 4. The viewer can even use the navigation keys to scroll back tothe Hot Picks navigation point, if so desired. However, the viewer mayprefer instead to invoke the quickmenu 116 (FIG. 3) by pressing the menubutton in order to take advantage of the Hot Picks menu selection. Thesame data are made available to the viewer regardless of which method ofnavigation is used. Thus, the selection of navigation points from thequickmenu 116 (FIG. 3) has no effect on the underlying data. They simplyallow the viewer to move quickly from one point to another while in theProgram Guide display mode.

[0068] In the preferred embodiment, use of either the Hot Picks or PrimeTime navigation point from the quickmenu 116 (FIG. 3) results in adisplay of program schedule information beginning with the prescribedstarting prime time hour (e.g., 7:00 PM) without regard to the currenttime period or the channel to which the tuning circuitry 72 (FIG. 2) istuned. The navigation keys may then be used by the viewer tohorizontally scroll the program grid 112 and the time bar 102 to displayprogram schedule information for other time periods—including thecurrent time period (if the current time period is earlier than thestarting prime time hour). The navigation keys on the remote control 78(FIG. 2) can also be used to scroll to program schedule informationcorresponding to programs scheduled for telecast on later dates. Thedate cell 106 automatically displays the date corresponding to theprogram schedule information displayed in the program grid 112.

[0069]FIG. 6 depicts the program guide screen 100 as it appears when theviewer selects the What's On navigation point from the quickmenu 116(FIG. 3). Program schedule information corresponding to the main channelline-up is displayed in the program grid 112, starting at the half hourtime period immediately preceding the current time period. Navigation isaccomplished in the same manner described above in connection with FIGS.4 and 5. The Menu key remains available for invoking the quickmenu 116(FIG. 3). The Select key is used to select the highlighted program forviewing or recording, or to display additional information about thehighlighted program.

[0070] In an alternative embodiment of the invention, selection of theWhat's On navigation point causes a display of program scheduleinformation starting at the time period following the current timeperiod. Thus, if the current time period is the 2:00 PM time period,program schedule information is displayed in the program grid 112 (FIGS.3-6) starting at the 2:30 PM time period.

[0071] Yet another alternative embodiment is described in connectionwith FIG. 29. In this embodiment, a Program Guide screen 140 includes atime bar 142, a channel bar 144, and a program grid 146 that operate insubstantially the same manner as described above in connection withFIGS. 3-6. However, in this embodiment, the program grid 146 includes anavigation cell 148 that preferably contains at least two iconsrepresenting navigation points. The icons may represent any of thenavigation points discussed above, but in this example, the navigationcell 148 includes an “What's On” icon 150 and a “Hot Picks” icon 152.The icon 150 is shown highlighted, indicating the location of a cursor.The viewer can navigate the cursor from any of the program cells in theprogram grid 146 to either of the icons 150 and 152 using the navigationkeys on the remote control 78 (FIG. 2), as described above.

[0072] Unlike the program cells contained in the program grid 146, thenavigation cell 148 may be viewed as “stationary” in that it does notmove with the rest of the program cells as the viewer navigates in theprogram grid 146. Rather, the navigation cell 148 preferably remains inthe lower right corner of the program grid 146, even as the channels andtimes change in the channel bar 144 and the time bar 142, respectively.Thus, the viewer is always able to navigate the cursor to one of theicons 150 and 152 displayed in the navigation cell 148.

[0073] Pressing the Select key on the remote control 78 (FIG. 2) whileone of the icons 150 or 152 is highlighted causes the interactiveprogram guide to navigate the program grid 146 to the navigation pointindicated in the selected icon. For example, after the What's On icon150 is selected, the interactive program guide navigates the programgrid 146 to the current time period. If the Hot Picks icon 152 isselected, the program grid 146 then displays program scheduleinformation for the premium channel line-up starting at the earliestprime time hour defined by the operational parameters. Essentially,selecting an icon from the navigation cell 148 has the same effect asselecting the corresponding navigation point from the quickmenu 116(FIG. 3). The advantage offered by this embodiment is that the viewerdoes not have to invoke the quickmenu 116 (FIG. 3) in order to rapidlynavigate to a desired location in the program schedule information.

[0074] Turning now to FIG. 7, a program search screen 200 is described.The program search screen 200 appears on the display 84 (FIG. 2) whenthe viewer selects the Program Search display mode from the quickmenu116 (FIG. 3). In accordance with the invention, the Program Searchdisplay mode allows the viewer to chose a restrictive search selectioncriterion and a nonrestrictive sort attribute. The selection criterionand sort attribute are applied to the program schedule information toassist the viewer in locating programs of interest.

[0075] Like the screen 100 (FIGS. 3-6), the screen 200 includes thetitle bar 124. The title bar 124 contains the clock cell 126 displayingthe current time, and an indication that the viewer can invoke thequickmenu 116 (FIG. 3) by pressing the Menu key on the remote control 78(FIG. 2). When the Menu key is pressed, the quickmenu 116 (FIG. 3)appears immediately above the title bar 124, partially covering some ofthe other information on the screen 200. The quickmenu 116 (FIG. 3)operates in the Program Search display mode in the same manner describedabove for the Program Guide display mode.

[0076] When the quickmenu 116 (FIG. 3) is not displayed, the area abovethe title bar 124 in the screen 200 is divided into three functionalregions—a search selection menu 202, a sort menu 204, and a program menu206. The search selection menu 202 is used by the viewer to choose asingle restrictive search selection criterion from a plurality ofavailable search selection criteria. The sort menu 204 is used by theviewer to choose a single nonrestrictive sort attribute from a pluralityof available sort attributes. Program schedule information correspondingto programs that meet the chosen search selection criterion aredisplayed in the program menu 206 in the order indicated by the chosensort attribute. It should be noted that although the preferredembodiment of the invention uses only a single selection criterion and asingle sort attribute, combinations of multiple selection criteria witha single sort attribute, or a single selection criterion with multiplesort attributes, or multiple selection criteria with multiple sortattributes may be used without departing from the spirit of theinvention.

[0077] When the screen 200 first appears on the display 84 after theProgram Search display mode is selected from the quickmenu 116 (FIG. 3),an active selection criterion cell 208 appears highlighted, representingthe location of a cursor. The presence of the cursor in the searchselection menu 202 means that the viewer can interact with the menu 202by using the Up and Down Arrow Keys on the remote control 78 (FIG. 2).By using the Left and Right Arrow Keys, the viewer can move the cursorto the sort menu 204 or the program menu 206. Whichever one of the menus202, 204, or 206 contains the cursor is the active menu (i.e., the menuthat the viewer can interact with).

[0078] When the search selection menu 202 is active, the viewer can usethe Up and Down Arrow keys to choose a single search selection criterionfrom among the available selection criteria. Pressing the Down Arrow Keycauses the selection criterion displayed in a next search cell 210(e.g., “Drama”) to appear in the active selection criterion cell 208.Pressing the Up Arrow Key causes the selection criterion displayed in aprevious search cell 212 to appear in the active selection criterioncell 208. The search selection menu 202 preferably operates in anendless loop fashion, with additional selection criteria being displayedas the viewer scrolls the menu 202. The available selection criteria arestored as operational parameters in the memory 76, which, as explainedabove, may be defined by either the data center 52 (FIG. 1) or theheadend telecasting center 54 (FIG. 1). Selection criteria may include,but are not limited to, Movies, Drama, Action, Science Fiction, Comedy,Sports, TV, Documentaries, Pay Per View, On in Next Hour, etc. The orderin which the available selection criteria are presented is alsodetermined by the operational parameters. In addition, the “defaultselection criterion” (i.e., the selection criterion that appears in theactive selection criterion cell 208 when the Program Search display modeis invoked) is also defined by the operational parameters. Thus, thedata center 52 (FIG. 1) or the headend telecasting center 54 can set thedefault selection criterion to a selection criterion that may be ofinterest to a large segment of the viewing population. For example, itmay be desirable to set the default selection criterion to Pay Per Viewif a popular movie is being shown that evening. Programs meeting thedefault search selection criterion are made available for viewerselection in the program menu 206 when the screen 200 is displayed afterthe Program Search display mode is selected.

[0079] The selection criterion that appears in the active selectioncriterion cell 208 is preferably automatically applied to the programschedule information to present a listing of program scheduleinformation meeting the single selection criterion. In other words, theviewer does not need to press the Select key (or any other key) in orderto apply the search selection criterion to the program scheduleinformation. Rather, programs that meet the active search selectioncriterion are made available for user selection in the program menu 206as the viewer scrolls the search selection menu 202. Thus, each time theUp Arrow or Down Arrow Key is pressed, the program schedule informationdisplayed in the program menu 206 changes in accordance with the newselection criterion displayed in the active selection criterion cell208. Search selection is restrictive in the sense that programs which donot meet the active search selection criterion are not made availablefor viewer selection in the program menu 206. In an alternativeembodiment, the selection criterion is not automatically applied to theprogram schedule information. Rather, the criterion is not applied untilthe viewer presses the Select key.

[0080] When the viewer moves the cursor to the sort menu 204, an activesort attribute cell 214 is highlighted (the highlighting is not shown inFIG. 7). When the active sort attribute cell 214 is highlighted, theviewer can use the Up and Down Arrow keys to select a sort attribute tobe applied to the program schedule information displayed in the programmenu 206. Pressing the Down Arrow key causes the sort attributedisplayed in a next sort cell 216 to appear in the active sort attributecell 214. Pressing the Up Arrow key causes the sort attribute displayedin a previous sort cell 218 to appear in the active sort attribute cell214. Like the search selection menu 202, the sort menu 204 preferablyoperates in an endless-loop fashion.

[0081] Unlike the search selection criteria, the sort attributes arenonrestrictive and do not operate to select program schedule informationto be presented in the displayed list of program schedule information.Thus, when the viewer changes the sort attribute, the result is simply achange in the order in which programs meeting the active searchselection criterion are displayed in the program menu 206.

[0082] The sort attributes available for viewer selection are defined bythe operational parameters stored in the memory 76 (FIG. 2). The defaultsort attribute (i.e., the one that is active when the Program Searchdisplay mode is invoked) is also defined by the operational parameters.Moreover, the operational parameters may define a different set of sortattributes for each search selection criterion. For example, if theselection criterion displayed in the active selection criterion cell 208is “Movies”, the sort attributes available in the sort menu 204 mayinclude certain generic sort attributes such as sort by “Telecast Time,”“Alphabetize,” and sort in “Channel” order, but it may also include sortby “Rating.” Since “Rating” normally would not apply to the selectioncriterion “Sports,” it is not made available in the sort menu 204 when“Sports” is the active selection criterion. Instead, the sort menu 204may offer sort by “Sport” as a sort attribute, which if selected, wouldcause the sports programs to be grouped by sport (e.g., baseball,football, soccer, etc.). The order in which the sports are presented isdetermined by the operational parameters.

[0083] The program menu 206 displays program schedule information forprograms that meet the active search selection criterion, in an orderdetermined by the active sort attribute. The user can navigate in theprogram menu 206 when one of the program choice cells 220 is highlighted(indicating the presence of the cursor).

[0084] The program menu 206 includes a menu header 222 that identifiesthe number of programs that meet the active search selection criterion.At least one group header 224 is also displayed in the program menu 206.The group headers 224 identify the subgroups that resulting from theapplication of the active sort attribute to the program scheduleinformation.

[0085] The program choice cells 220 preferably contain the programtitles, telecast times, and channels (call signs or channel numbers) ofprograms that meet the active search selection criterion. However, ifthe active sort attribute is “Telecast Time,” the telecast times arepreferably displayed in the group headers 224 instead of the programchoice cells 220. Similarly, if the active sort attribute is “Channel,”the call signs are preferably displayed in the group headers 224 insteadof the program choice cells 220.

[0086] The viewer uses the Up and Down Arrow keys to navigate in theprogram menu 206. The cursor appears only on the program cells 220 (notthe group headers 224). In order to view more program scheduleinformation meeting the active search selection criterion, the viewercan scroll the program menu 206 by pressing the Up Arrow key while thecursor is on the first displayed program, or the Down Arrow key whilethe cursor is on the last displayed program. The program menu 206preferably operates in an endless-loop fashion.

[0087] In order to select a program for viewing or recording, or to seeadditional information about a program, the viewer presses the selectkey while the program choice cell 220 corresponding to a program ofinterest is highlighted. These features are described in greater detailbelow in connection with FIG. 10.

[0088] As mentioned above, the quickmenu 116 (FIG. 3) is preferablycontext sensitive. When the quickmenu 116 (FIG. 3) is invoked from theProgram Search display mode, it preferably includes a menu selectionidentified as “Return.” Like the above-described navigation points,selection of the Return menu choice invokes the Program Guide displaymode. However, when Return is selected, the screen 100 (FIGS. 3-6)includes program schedule information corresponding to the programidentified in'the last program choice cell 220 highlighted in theprogram menu 206. This useful feature allows the viewer to considerother programs that may be scheduled for telecast at the same time asthe highlighted program before making a selection.

[0089] Referring now to FIG. 8, a day to view screen 300 is described.The day to view screen 300 appears on the display 84 (FIG. 2) when theviewer selects the Day to View display mode from the quickmenu 116 (FIG.3). In accordance with the invention, the Day to View display modeprovides a convenient graphical user interface that allows the viewer toquickly navigate to program schedule information for programs to betelecast (or being telecast) on a specified date. The Day to Viewdisplay mode provides for even more precise navigation by allowing theviewer to specify a day part (i.e., a range of hours) for the specifieddate. When the viewer returns to the program guide screen 100 (FIGS.3-6) after specifying a date and day part using the screen 300, theprogram grid 112 navigates to program schedule information for thespecified date and day part. However, it should be noted that thespecified date and day part do not limit the amount of or in any senserestrictively select the program schedule information available ordisplayed to the viewer (i.e., they are not restrictive selectioncriteria). Rather, the Day to View display mode operates as apositioning tool.

[0090] Like the screen 100 (FIGS. 3-6), the screen 300 includes thetitle bar 124. The title bar 124 contains the clock cell 126 displayingthe current time, and an indication that the viewer can invoke thequickmenu 116 (FIG. 3) by pressing the Menu key on the remote control 78(FIG. 2). When invoked, the quickmenu 116 (FIG. 3) appears immediatelyabove the title bar 124. The quickmenu 116 (FIG. 3) operates in the Dayto View display mode in the same manner described above for the ProgramGuide display mode.

[0091] The area of the screen 300 above the title bar 124 contains twoviewer menus—a calendar menu 302 and a day part menu 304. The calendarmenu 302 resembles a conventional monthly calendar. The month selectedfor display in the calendar menu 302 is a month having dates for whichprogram schedule information is available.

[0092] The heavy borders around calendar cells 306, 308, 310, 312, 314,316, and 318 indicate that the memory 76 (FIG. 2) contains programschedule information for programs to be telecast (or being telecast) onthose dates. As shown in FIG. 8, the memory 76 (FIG. 2) preferablystores program schedule information for seven days starting with thecurrent date (in this example, February 9-15). Of course, the amount ofprogram schedule information made available to the viewer may be variedwithout departing from the spirit of the invention. The cell 306 is alsohighlighted, indicating the presence of a calendar cursor. When the Dayto View display mode is invoked, the cursor is placed in the cellcorresponding to the last date for which program schedule informationwas considered in the Program Guide display mode. Thus, if the Day toView display mode is invoked immediately after the interactive programguide is activated (i.e., before the viewer attempts to navigate in theProgram Guide display mode), the cursor will appear in the cellrepresenting the current date, which is the first of the heavilybordered cells. In the example shown in FIG. 8, the cell 306 representsthe current date.

[0093] In order to select a new date, the viewer uses the Left and RightArrow keys on the remote control 78 (FIG. 2) to move the cursor from onecalendar cell to the next. The cursor can appear only in one of theheavily bordered cells 306, 308, 310, 312, 314, 316, and 318. When thecell 306 is highlighted, pressing the Left Arrow key moves the cursor tothe cell 318. When the cell 318 is highlighted, pressing the Right Arrowkey moves the cursor to the cell 306.

[0094] Toward the end of any given month, the available program scheduleinformation extends into the next month. In this situation, the monthdisplayed in the calendar menu 302 automatically changes as the viewerattempts to move the cursor from one month to the next. For example, ifprogram schedule information is available for the period from February27 through March 5, pressing the Right Arrow key while cell 320(February 28) is highlighted causes the calendar 302 to switch to thenext month. The cursor would appear on the cell for March 1 (not shown).Pressing the Left Arrow key while the cursor is on the cell for March 1results in a redisplay of the February calendar in the calendar menu302.

[0095] The day part menu 304 preferably includes a plurality of day partcells 322. In the example shown in FIG. 8, the day part menu 304includes six day part cells 322 each representing four hours of programschedule information.

[0096] One of the day part cells 322 (the Morning cell) is highlightedto represent the location of a day part cursor. Similar to the calendarcursor, the day part cursor initially appears on the day part that wasmost recently considered in the Program Guide display mode (FIGS. 3-6).The viewer moves the day part cursor by pressing the Up or Down Arrowkey on the remote control 78 (FIG. 2). Thus, the calendar cursor and theday part cursor are simultaneously displayed in the screen 300. However,they respond to different keys on the remote control 78 (FIG. 2). Thecursor wraps around the day part menu 304 as needed.

[0097] After a date and day part have been selected, the viewer canreturn to the Program Guide display mode (FIGS. 3-6) to view programschedule information for the date and day part selected. This isaccomplished by pressing the Select key, or by invoking the quickmenu116 (FIG. 3) by pressing the Menu key, and then selecting the contextsensitive menu choice “Return.” The program grid 112 then navigates tothe selected date and day part.

[0098] Referring now to FIG. 9, a favorite channel screen 400 isdescribed. The favorite channel screen 400 appears on the display 84(FIG. 2) when the viewer selects the Favorite Channel display mode fromthe quickmenu 116 (FIG. 3). The Favorite Channel display mode allows theviewer to select a favorite channel line-up., which is used to sort thechannels displayed in the Program Guide display mode. By selecting afavorite channel line-up, the viewer can sort the program scheduleinformation displayed in the Program Guide display mode, so that thechannels that the viewer is most interested in appear first, in theorder selected by the viewer. Program schedule information for the otherchannels follow thereafter. The selected favorite channel line-up ispreferably operative only in the Program Guide display mode (FIGS. 3-6).It preferably has no effect on the Program Search display mode (FIG. 7).In addition, the favorite channel line-up is preferably not applied tothe premium channel line-up.

[0099] Like the screens 100, 200 and 300, the screen 400 includes thetitle bar 124 with the clock cell 126. The quickmenu 116 (FIG. 3) isalso available.

[0100] The screen 400 also includes two menus—a full channel line-upmenu 402 and a favorite channel line-up menu 404. The menu 402 presentsa list of the channels provided by the headend telecasting center 54(FIG. 1). The menu 402 contains a plurality of cells 406 and 408, eachdisplaying a channel number and call sign for one of the availablechannels. The cell 406 is shown highlighted to represent the location ofa cursor. The Up and Down Arrow keys are used to move the cursor fromone cell to the next. The menu 402 displays a subset of the availablechannels, but the viewer can scroll the menu 402 to consider otherchannels in the full channel line-up. The menu 402 preferably operatesin an endless loop fashion.

[0101] The menu 404 also contains a plurality of cells 410 fordisplaying channel numbers and call signs corresponding to the viewer'sfavorite channel line-up. When the Favorite Channel display mode isinvoked, the viewer's previously selected favorite channel line-up isretrieved from the memory 76 (FIG. 2). In the example shown in FIG. 8,the viewer's favorite channel line-up includes the nine channels shownin the cells 410. An unused cell 412 is left empty. If the viewer hadnot previously established a favorite channel line-up, the menu 404would consist of an array of empty cells 412. If the viewer's favoritechannel line-up includes more channels then can be displayed at once,the menu 404 can be scrolled (like the menu 402) to display additionalchannels. To scroll the menu 404, the viewer first moves the cursor tothe menu 404 by using the Left or Right Arrow key.

[0102] The screen 400 also includes a select icon 414. The cursor can beplaced on the select icon 414 by using the Left or Right Arrow key. Whenthe Select key on the remote control 78 (FIG. 2) is pressed while theselect icon 414 is highlighted, the favorite channel line-up in the menu404 is stored in the memory 76 (FIG. 2), and the interactive programguide returns to the Program Guide display mode (FIGS. 3-6). The programschedule information is then presented in accordance with the viewer'sstored favorite channel line-up.

[0103] The viewer establishes a favorite channel line-up by selectingchannels from the menu 402 and inserting the selected channels intodesired locations in the menu 404. For example, in order to insert thechannel indicated in the cell 406 (i.e., channel 2) into the favoritechannel line-up, the viewer presses the Select key while the cursor ison the cell 406. The cursor then automatically jumps to the first emptycell in the menu 404, which is the cell 412 in the example shown in FIG.9. The channel number and call sign are also displayed in the cell 412(not shown in FIG. 9). The viewer then presses the Select key totemporarily insert the selected channel at the highlighted location(e.g., the cell 412). It should be noted that the favorite channelline-up need not be assembled in numerical order. The channel sequencedefined by the viewer in the screen 400 is used to present scheduleinformation in the Program Guide display mode (FIGS. 3-6).

[0104] In order to remove channels from the favorite channel line-up,the viewer moves the cursor to the menu 404 without selecting a channelfrom the menu 402. The viewer can then move the cursor to any cellcontaining a channel identification (e.g., any one of the cells 410).Pressing the Select key while one of the cells 410 is highlighted causesa prompt (not shown) to be displayed requesting confirmation of thedeletion. The deletion can be confirmed by pressing the Select key. Whenthe Select key is pressed, the channel appearing in the highlighted cellis erased. The emptied cell may be later filled with another channel, orit may be left empty, thereby reducing the size of the favorite channelline-up.

[0105] When the viewer is satisfied with the favorite channel line-up.,the Left or Right Arrow key may be used to move the cursor to the selecticon 414. By then pressing the Select key, the favorite channel line-upis stored and applied, as described above. In order to exit the screen400 without saving the changes, the quickmenu 116 (FIG. 3) may beinvoked.

[0106] Once a favorite channel line-up has been stored in the memory 78(FIG. 2), it is automatically applied to the program scheduleinformation each time the interactive program guide is invoked. In analternative embodiment, the interactive program guide allows forcreation and storage of several different favorite channel line-ups(e.g., one for each member of a household). To accomplish this, theinteractive program guide requests a personal identification number (notshown) each time the guide is invoked. The personal identificationnumber is used to uniquely identify each favorite channel line-up.

[0107] It may also be desirable to allow the viewer to disable thefavorite channel line-up. This may be accomplished by including acontext sensitive menu choice in the quickmenu 116 (FIG. 3) labeled“Disable” (not shown). Selecting Disable prevents the application of thefavorite channel line-up for the current session, or until the viewerreturns to the screen 400 to select a context sensitive “Enable” menuchoice (not shown) from the quickmenu 116 (FIG. 3).

[0108] Turning now to FIG. 10, a program selection screen 500 isdescribed. The program selection screen appears on the display 84 (FIG.2) when the viewer selects a program from either the screen 100 in theProgram Guide display mode (FIGS. 3-6) or the screen 200 in the ProgramSearch display mode (FIG. 7). The program selection screen 500 is alsodisplayed when the viewer selects the menu choice “Player” (not shown)from the quickmenu 116 (FIG. 3). As shown in FIG. 10, the screen 500includes the title bar 124 with the clock cell 126. The quickmenu 116(FIG. 3) can be invoked from the screen 500 by pressing the Menu key onthe remote control 78 (FIG. 2).

[0109] The screen 500 further includes a program title window 502, adescription window 504, a video clip window 56, and a menu window 508.When the screen 500 is invoked by selecting a program from either thescreen 100 (FIGS. 3-6) or the screen 200 (FIG. 7), the program titlewindow 502 displays the title of the selected program. In addition, thedescription window 504 displays more information which may be includedin the program schedule information stored in the memory 76 (FIG. 2) forthe selected program. Such information may include the telecast date andtime, the channel, featured performers, MPAA rating, etc.

[0110] The video clip window 506 is used to display a short video cliprelating to the selected program (if a video clip is included in theprogram schedule information for the selected program). This feature isdescribed in commonly assigned, copending U.S. patent application Ser.No. 08/246,949 entitled “Video Clip Program Guide,” which is herebyincorporated by reference in its entirety.

[0111] When the screen 500 is invoked from the quickmenu 116 (FIG. 3),the windows 502, 504, and 506 are empty.

[0112] The choices presented in the menu window 508 also depend on thecircumstances under which the screen 500 is invoked. The choices shownin FIG. 10 are presented when the viewer selects, from the screen 100(FIGS. 3-6) or the screen 200 (FIG. 7), a program that is not currentlybeing telecast. A choice 510 is shown highlighted to represent thelocation of a cursor. The Up and Down Arrow keys may be used to move thecursor from one choice to the next. The Select key is used to select amenu choice.

[0113] The menu choice “Add to Scheduled Viewing List” is used to add anentry for the selected program into the scheduled viewing list. When thecurrent time approaches or matches the telecast time for a programlisted in the scheduled viewing list, the display 84 (FIG. 3) displays aprompt (not shown) notifying the viewer that a program of interest isabout to start. The prompt is displayed (as long as the display 84 ison) even if the interactive program guide is not active. The viewer canclear the prompt by pressing any navigation key on the remote control 78(FIG. 2).

[0114] The menu choice “Add to Recording List” is used to add an entryfor the selected program into a recording list. When the current timeapproaches or matches the telecast time for a program listed in theRecording List, the control unit 74 (FIG. 2) causes the tuning circuitry72 (FIG. 2) to tune to the appropriate channel. Through the IRtransmitter 90 (FIG. 2), the control unit 74 (FIG. 2) also causes theVCR 88 (FIG. 2) to begin recording at the appropriate time (assumingthat the VCR 88 (FIG. 2) had been turned on by the viewer beforehand).

[0115] The menu choice “View Scheduled Viewing List” is used to invoke adisplay (not shown) listing program schedule information for programsthat have been added to the scheduled viewing list. The menu choice“View Recording List” operates similarly with respect to the recordinglist. Preferably, the displayed information (not shown) includes thetitle, telecast time, and channel for each program. The navigation keyson the remote control 78 (FIG. 2) may be used to clear either of thedisplayed lists.

[0116] The menu selection “Other Times” is used to display a list oftelecast times (not shown) other than the selected time, for theselected program.

[0117] To exit the screen 500 and return to the screen from which it wasinvoked, the user selects the “Exit” menu choice. Alternatively, thequickmenu 116 (FIG. 3) may be used to exit the screen 500.

[0118] If the screen 500 is invoked by selecting a program currentlybeing telecast, the menu choices “Add to Scheduled Viewing List” and“Add to Recording List” are not displayed. Instead, the first menuchoice preferably displayed is “Tune to Program.” When “Tune to Program”is selected, the control unit 74 (FIG. 2) causes the tuning circuitry 72(FIG. 2) to tune to the selected program. The selected program is thenpresented on the display 84 (FIG. 2).

[0119] When the screen 500 is invoked from the quickmenu 116 (FIG. 3),only the “View Scheduled Viewing List,” “View Recording List” and “Exit”menu choices are available.

[0120] The present invention also contemplates the use of additionalmenu choices that would be appropriate in a duplex cable network (i.e.,one that allows two-way communication between the set-top box 70 (FIG.2) and the headend telecasting center 54 (FIG. 1)). For example, in sucha system, when the viewer invokes the screen 500 by selecting a pay perview program from either the screen 100 (FIGS. 3-6) or the screen 200(FIG. 7), the menu choices may include an “Order Pay Per View” choice.If the viewer selects that choice, the set-top box 70 (FIG. 2) transmitsthe request to the headend telecasting center 54.

[0121] The program schedule information stored in the memory 76 (FIG. 2)may also be used to provide an abbreviated program guide that allows theviewer to browse through the program schedule information whilesimultaneously watching a television program on the display 84 (FIG. 2).In order to implement the abbreviated guide, the remote control 78 (FIG.2) preferably includes an additional key (labeled, e.g., “Browse”) toinvoke the abbreviated guide. The abbreviated guide is preferablydisplayed as an overlay on the television program being watched when theBrowse key is pressed. The abbreviated guide is preferably displayed onthe lower portion of the display 84 (FIG. 2) so as to not be undulydistracting.

[0122] The abbreviated guide provided in accordance with the presentinvention may be understood by reference to FIGS. 30-33. A display 550depicts the abbreviated guide as it may appear when it is first invoked.As shown in FIG. 30, when the abbreviated guide is invoked, it does notdisplay program schedule information. Instead, the display 550 simplypresents the title of the program that is currently being shown on thedisplay 84 (FIG. 2). The channel number (not shown) may also bedisplayed, but preferably in the upper left hand corner of the display84 (FIG. 2). The channel number preferably remains displayed for aboutfive seconds, or until the viewer presses any navigation key on theremote control 78 (FIG. 2). Thus, with a single press of the Browse key,the viewer is provided with an immediate and unobscured display of thechannel and title of the program being shown on the display 84 (FIG. 2).

[0123] The display 550 is shown highlighted, indicating the presence ofa cursor that the viewer can control using the navigation keys. If theviewer presses the Right Arrow key from the display 550, the channelnumber in the upper left corner of the display 84 (FIG. 2) immediatelydisappears. In addition, a display 556 appears in place of the display550. The display 556 still does not present program schedule information(i.e., no channel is displayed). Rather, the display 556 includes a timebar 558 preferably containing four time cells 560 each representing aone half hour period of programming. The display 556 also includes asingle-line program grid 562 containing, in this example, a plurality ofprogram cells 564, 566, 568, and 570. Like the program cells of theprogram grid 112 (FIGS. 3-6), the widths of the program cells 564, 566,568, and 570 vary in accordance with the lengths of the programsidentified in the program cells. Thus, a program cell for a two hourprogram would span the entire width of the program grid 662.

[0124] By pressing the Right Arrow key from the display 550, the viewermoves the cursor to the program cell 566. Further presses of the RightArrow key cause the cursor to continue to move to the right until theprogram cell 570 is reached, at which point the program grid 562 and thetime bar 558 scroll with continued Right Arrow key presses in order todisplay additional program titles for later time periods. The programgrid 562 and time bar 558 also scroll to the left in response to LeftArrow key presses, as needed, preferably up to the current time period(i.e., the program cell 564). However, when the program cell 564 isreached, the abbreviated guide preferably resumes the display 550 forthe program currently being shown on the display 84 (FIG. 2). Thispresentation provides the viewer with immediate feedback that he or shehas navigated back to the program title corresponding to the programbeing watched. When the display 550 is redisplayed in this manner, thechannel is preferably displayed again in the upper left corner of thedisplay 84 (FIG. 2) for about five seconds or until the next navigationkey is pressed.

[0125] If the viewer presses the Down Arrow key from the display 550, adisplay 551 is presented in place of the display 550. The display 551still does not present program schedule information (i.e., telecasttimes are not provided). The display 551 includes a single channel cell552 containing a channel number and call sign, and a single program cell554 containing the title of the program that is currently being telecaston the channel indicated by the channel cell 552. Each time the viewerpresses the Down Arrow key, the contents of the channel cell 552 and theprogram cell 554 are replaced with the appropriate information for thenext-channel in the sequence of available channels. The viewer can usethe Up Arrow key to move back through the channels until the currentchannel is reached, at which time the display 551 is replaced with thedisplay 550.

[0126] Once the viewer navigates in a dogleg fashion (i.e., by movingthe cursor away from both the current time period and the currentchannel), it becomes desirable to display program schedule information(i.e., telecast time, channel and title), as shown in a display 572. Thedisplay 572 includes a channel cell 574, a date cell 576, a time bar 578spanning one and a half hours, and a program grid 580. The viewer cannavigate in the program grid 580 in substantially the same manner asdescribed above for the program grid 112 (FIGS. 3-6)—the main differencebeing that program schedule information for only one channel isdisplayed at any given time.

[0127] The Select key on the remote control 78 (FIG. 2) is preferablyoperative in the abbreviated guide to cause the tuning circuitry 72(FIG. 2) to tune to the highlighted program, if the program is currentlybeing telecast. Otherwise, the Select key has no effect. In analternative embodiment, the Select key may instead be used to invoke theplayer screen 500 (FIG. 10) to allow the viewer to schedule thehighlighted program for later viewing or recording.

[0128] The abbreviated guide preferably remains on the display 84 (FIG.2) for a predetermined period of time following the last key press onthe remote control 78 (FIG. 2) (preferably about five seconds), afterwhich it is automatically cleared.

[0129] Referring now to FIGS. 11-28, a series of logic flow diagrams aredescribed which represent at a functional level, a control programexecuted by the control unit 74 (FIG. 2) for implementing theinteractive program guide of the present invention.

[0130] A main program loop 600 is described in connection with FIG. 11.Although the main program loop 600 is represented as a conventionaltop-down flowchart, it is preferably implemented as a collection ofinterrupt-driven routines which perform the stated functions. Theprogram begins with test 602 where the control unit 74 (FIG. 2)determines if program schedule information and/or software (includingoperational parameters) which are not currently stored in the memory 76(FIG. 2) are being received from the headend telecasting center 54 (FIG.1). If such data or software is being received, the control unit 74(FIG. 2) stores the received data in the memory 76 (FIG. 2) at step 604.Otherwise, the control unit 74 (FIG. 2) performs test 606 to determineif the current time is approaching a program telecast time stored ineither the scheduled viewing list or the recording list in memory 76(FIG. 2).

[0131] If the current time is approaching a stored telecast time, thecontrol unit (FIG. 2) then determines at test 608, which list thetelecast time is stored in. If the telecast time is stored in thescheduled viewing list, the control unit 74 (FIG. 2) causes the display84 (FIG. 2) to display a prompt (as long as the display 84 is turned on)notifying the viewer that a scheduled program is about to be telecast.In an alternative embodiment, the control unit 74 (FIG. 2) may cause thedisplay 84 (FIG. 2) to display several prompts prior to the scheduledtelecast time (e.g., one each minute for the three minutes preceding thescheduled telecast time. Of course, other prompt schedules may be usedas deemed appropriate. After the last prompt is displayed, the controlunit 74 (FIG. 2) deletes the entry for the scheduled program from eitherthe scheduled program list or the recording list at step 612.

[0132] If it is determined at test 608 that the telecast time is storedin the recording list, the control unit 74 (FIG. 2) proceeds to step614, where it causes the tuning circuitry 72 (FIG. 2) to tune to thechannel on which the scheduled program is being transmitted. Then atstep 616, the control unit 74 (FIG. 2) then causes the VCR 88 (FIG. 2)to begin recording at the stored telecast time. The control unit 74(FIG. 2) then deletes the entry for the scheduled program at step 612.

[0133] After step 612, or if the control unit 74 (FIG. 2) determines attest 606 that the current time is not approaching a stored telecasttime, a test 618 is performed to determine if the viewer has pressed theGuide key on the remote control 78 (FIG. 2). If not, the control unit 74(FIG. 2) loops back to the test 602. If the Guide key has been pressed,the control unit 74 (FIG. 2) then determines if the interactive programguide is currently active at test 620. If it is, the control unit 74(FIG. 2) deactivates the guide at step 622. If not, a navigation pointis set to “Hot Picks” at step 624, and a Program Guide routine(described below in connection with FIGS. 12-13) is then invoked at step626. The control unit 74 (FIG. 2) loops back to test 602 after eitherstep 622 or 626 is performed.

[0134] As mentioned above, the functions described with respect to FIG.11 are preferably implemented through the use of interrupt-drivenroutines. Thus, the control unit 74 (FIG. 2) is preferably responsive tothe scheduled viewing list, the recording list, and Guide key presseswhile the interactive program guide is operating in any of thepreviously described display modes.

[0135] FIGS. 11-12 represent the Program Guide routine 628, which isperformed by the control unit 74 (FIG. 2) in order to provide theProgram Guide display mode (FIGS. 3-6). After the Program Guide routine628 is invoked, a series of tests 630, 632, 634, 636, and 638 areperformed to determine how the control unit 74 (FIG. 2) will presentprogram schedule information in the program guide screen 100 (FIGS.3-6).

[0136] If it is determined at test 630 that the Hot Picks navigationpoint is set, the control unit 74 (FIG. 2) then determines at test 640whether the current time period is later than the starting prime timestored in the memory 76 (FIG. 2). If it is, test 641 is performed todetermine if earlier prime time data are still available for display. Ifearlier data are not available (because such data were discarded), thecontrol unit 74 (FIG. 2) at step 642 causes the display 84 (FIG. 2) todisplay the premium channel line-up in the screen 100 (FIGS. 3-6)starting at the beginning of the database, or alternatively, at thebeginning of tomorrow's prime time. If the current time period is notlater than the starting prime time hour (test 640), or if earlier primetime data is available (test 641), the control unit 74 (FIG. 2), at step644, causes the display 84 (FIG. 2) to display the premium channelline-up starting at the prescribed prime time hour (e.g., 7:00 PM) inthe screen 100 (FIGS. 3-6). After either step 642 or 644, test 646 isperformed to determine if the current execution of the Program Guideroutine 628 is the first execution since the Guide key was pressed. Ifit is, the Quickmenu (described below in connection with FIGS. 14-15) isinvoked at step 648. If not, or after step 648 is completed, the controlunit 74 (FIG. 2) proceeds to test 632.

[0137] If it is determined at test 632 that the Prime Time navigationpoint is set, the control unit 74 (FIG. 2) then determines at test 650whether the current time period is later than the starting prime timestored in the memory 76 (FIG. 2). If it is, test 651 is performed todetermine if earlier prime time data is still available for display. Ifearlier data is not available (because such data were discarded), thecontrol unit 74 (FIG. 2), at step 652, causes the display 84 (FIG. 2) todisplay the main channel line-up in the screen 100 (FIGS. 3-6) startingat the beginning of the database, or alternatively, at the beginning oftomorrow's prime time. If the current time period is not later than thestarting prime time hour (test 650), or if earlier prime time data isavailable (test 651), the control unit 74 (FIG. 2), at step 654 causesthe display 84 (FIG. 2) to display the main channel line-up (which maybe sorted in accordance with the viewer's favorite channel selections)starting at the current time period in the screen 100 (FIGS. 3-6). Aftereither step 652 or 654, the control unit 74 (FIG. 2) proceeds to test634.

[0138] At test 634, the control unit (FIG. 2) determines if the What'sOn navigation point is set. If it is, at step 656, the control unit 74(FIG. 2) causes the display 84 (FIG. 2) to display the main channelline-up (which may be sorted in accordance with the viewer's favoritechannel selections) starting at the current time period in the screen100 (FIGS. 3-6). After step 656, the control unit (FIG. 2) proceeds totest 636. Alternatively, the system may be programmed to display themain channel line-up starting at the time period following the currenttime period, or at some other time not including a current time period.

[0139] At test 636, the control unit (FIG. 2) determines if the ProgramGuide routine was invoked from the Program Search display mode(described below in connection with FIGS. 19-21). If it was, at step658, the control unit 74 (FIG. 2) causes the display 84 (FIG. 2) todisplay program schedule information in the screen 100 (FIGS. 3-6),starting with the program referenced by a pointer set in the ProgramSearch routine (FIGS. 19-21). After step 658, the control unit (FIG. 2)proceeds to test 638.

[0140] At test 638, the control unit (FIG. 2) determines if the ProgramGuide routine was invoked from the Day to View display mode (describedbelow in connection with FIGS. 22-23). If it was, at step 660, thecontrol unit 74 (FIG. 2) causes the display 84 (FIG. 2) to displayprogram schedule information in the screen 100 (FIGS. 3-6), starting atthe date and day part selected in the Day to View routine (FIGS. 22-23).

[0141] After the control unit 74 (FIG. 2) presents program scheduleinformation in the screen 100 (FIGS. 3-6), test 662 is performed todetermine if the Menu key on the remote control 78 (FIG. 2) has beenpressed. If the Menu key has been pressed, step 664 is performed toinvoke the Quickmenu (FIGS. 14-15). If not, and after the step 664 isperformed, the control unit 74 (FIG. 2) proceeds to step 666 to displaya cursor in the program grid 112 (FIGS. 3-6). Initially, the cursor isplaced on the first program in the program grid 112 (FIGS. 3-6) (i.e.,the program displayed in the upper left-most cell in the program grid112). However, when the cursor is displayed after the viewer returnsfrom the quickmenu (FIGS. 14-15), the cursor is placed on the cell thatwas highlighted before the quickmenu was invoked.

[0142] After step 666, test 668 is performed to determine if the viewerhas pressed a navigation key on the remote control 78 (FIG. 2). If anavigation key was pressed, test 670 is performed to determine if thenext program cell to be highlighted is currently displayed in theprogram grid 112 (FIGS. 3-6). If it is, the cursor is displayed in theappropriate program cell at step 672. If not, at step 674, the controlunit 74 (FIG. 2) first causes the display 84 (FIG. 2) to scroll theprogram grid 112 (FIGS. 3-6) (along with either the channel bar 108(FIGS. 3-6) or the time bar 102 (FIGS. 3-6)) by an amount sufficient todisplay the appropriate program cell. Step 672 is then performed to movethe cursor to the newly displayed program cell.

[0143] If a navigation key was not pressed, or after the cursor has beenmoved, test 676 is performed to determine if the Select key on theremote control 78 (FIG. 2) was pressed. If the Select key was pressed,the Selection routine (described below in connection with FIGS. 16-18)is invoked at step 678. If not, or upon returning from the Selectionroutine (FIGS. 16-18), the control unit 74 (FIG. 2) loops back to test662 to wait for the viewer to press a key.

[0144]FIGS. 14 and 15 represent the Quickmenu routine 680. After theQuickmenu 680 is invoked, step 682 is performed, where the control unit74 (FIG. 2) retrieves from the memory 76 (FIG. 2), the quickmenu choicesfor the display mode from which the quickmenu was invoked. The controlunit 74 (FIG. 2) then causes the display 84 (FIG. 2) to display thequickmenu 116 (FIG. 3) on the lower portion of the screen 100, 200, 300,400, or 500 at the step 684. At step 686, the control unit 74 (FIG. 2)positions the de-fault quickmenu choice for the current display mode inthe current choice cell 118 (FIG. 3).

[0145] At test 688, the control unit 74 (FIG. 2) checks if the viewerpressed the Menu key or the Up Arrow Key on the remote control 78 (FIG.2). If one of those keys was pressed at step 692, the quickmenu 116(FIG. 3) is cleared and control then returns to the routine from whichthe Quickmenu routine 680 was invoked.

[0146] At test 694, the control unit 74 (FIG. 2) checks if the viewerpressed the Left or Right Arrow key on the remote control 78 (FIG. 2).If one of those keys was pressed, the quickmenu 116 (FIG. 3) is scrolledin the appropriate direction at step 696.

[0147] After test 694 or step 696, the control unit 74 (FIG. 2) performsa series of tests to determine the viewer's quickmenu choice. At test698, the control unit 74 (FIG. 3) determines if the viewer selected the“Hot Picks” navigation point. If so, step 700 is performed to set thenavigation point to “Hot Picks.” The quickmenu 116 (FIG. 3) is thencleared and control is passed to the Program Guide routine (FIGS. 12-13)at step 702.

[0148] At test 704, the control unit 74 (FIG. 2) determines if theviewer selected the “Prime Time.” The quickmenu 118 is then cleared andcontrol is passed to the Program Guide routine (FIGS. 12-13) at step708.

[0149] At test 710, the control unit 74 (FIG. 2) determines if theviewer selected the “What's On” navigation point. If so, step 712 isperformed to set the navigation point to “What's On.” The quickmenu 116(FIG. 3) is then cleared and control is passed to the Program Guideroutine (FIGS. 12-13) at step 714.

[0150] At test 716, the control unit 74 (FIG. 2) determines if the viewselected the Program Search display mode. If so, the quickmenu is thencleared and control is passed to a Program Search routine (describedbelow in connection with FIGS. 19-21) at step 718.

[0151] At test 720, the control unit 74 (FIG. 2) determines if theviewer selected the Day to View display mode. If so, the quickmenu 116(FIG. 3) is then cleared and control is passed to a Day to View routine(described below in connection with FIGS. 22-23) at step 722.

[0152] At test 724, the control unit 74 (FIG. 2) determines if theviewer selected the “Return” quickmenu choice from the Program Searchdisplay mode. If so, the quickmenu 116 (FIG. 3) is then cleared andcontrol is passed to the Program Guide routine (FIGS. 12-13) at step726.

[0153] At test 728, the control unit 74 (FIG. 2) determines if theviewer selected the “Return” quickmenu choice from the Day to Viewdisplay mode. If so, the quickmenu 116 (FIG. 3) is then cleared andcontrol is passed to the Program Guide routine (FIGS. 12-13) at step730.

[0154] At test 732, the control unit 74 (FIG. 2) determines if theviewer selected the Favorite Channel display mode. If so, the quickmenu116 (FIG. 3) is then cleared and control is passed to a Favorite Channelroutine (described below in connection with FIGS. 24-28) at step 734.

[0155] At test 736, the control unit 74 (FIG. 2) determines if theviewer selected the “Player' quickmenu choice. If so, the quickmenu 116(FIG. 3) is cleared and control is passed to the selection routine(FIGS. 16-18) at step 738.

[0156] As shown in FIG. 14, the control unit 74 (FIG. 2) loops back totest 688 after test 736. The loop is maintained until the viewer selectsa menu choice from the quickmenu 116 (FIG. 3) or until the viewerpresses the Menu or Up Arrow key.

[0157] FIGS. 16-18 represent the Selection routine 738. After theSelection routine 738 is invoked, the control unit 74 (FIG. 3) displaysthe player screen 500 (FIG. 10) at step 740. At test 742, the controlunit 74 (FIG. 3) determines if the viewer invoked the player screen 500(FIG. 10) by selecting a program from either the Program Guide displaymode (FIGS. 3-6) or the Program Search display mode (FIG. 7). If theviewer selected a program, at step 744, the title of the selectedprogram is displayed in the title window 502, and additional informationabout the selected program is displayed in the description window 504(FIG. 10).

[0158] At step 746, the control unit 74 (FIG. 2) displays the playermenu in the menu window 508 (FIG. 10). As explained above in connectionwith FIG. 10, the choices available in the menu window 508 depend uponthe circumstances under which the player screen 500 was invoked. Thecontrol unit 74 (FIG. 2) then performs a series of tests to determinethe viewer's player menu choice.

[0159] At test 748, the control unit 74 (FIG. 2) determines if theviewer selected the “Tune to Program” player menu choice (i.e., if theselected program is currently being telecast). If so, the interactiveprogram guide is deactivated (i.e., cleared from the display 82 (FIG.2)) at step 750. The control unit 74 (FIG. 2) then causes the tuningcircuitry 72 (FIG. 2) to tune to the channel that is carrying theselected program at step 752. The program is then displayed on thedisplay 84 (FIG. 2).

[0160] At test 754, the control unit 74 (FIG. 2) determines if theviewer selected the “Add to Scheduled Viewing List” player menu choice(i.e., if the selected program is not currently being telecast). If so,test 756 is performed to determine if the viewer already scheduled theselected program for later viewing. If the selected program was notpreviously scheduled, an entry for the selected program is added to thescheduled viewing list in the memory 76 (FIG. 2) at step 758. If theprogram was previously scheduled, test 760 is performed to determine ifthe viewer confirmed the deletion of the previously scheduled programfrom the scheduled viewing list. This may be accomplished, for example,by displaying a prompt on the display 84 (FIG. 2) requesting that theviewer press the Select key to confirm deletion or a navigation key tocancel the deletion. If the deletion is confirmed, the control unit 74(FIG. 2) deletes the entry for the selected program from the scheduledviewing list at step 762.

[0161] At test 764, the control unit 74 (FIG. 2) determines if theviewer selected the “Add to Recording List” player menu choice (i.e., ifthe selected program is not currently being telecast). If so, test 766is performed to determine if the viewer already scheduled the selectedprogram for recording. If the selected program was not previouslyscheduled, an entry for the selected program is added to the recordinglist in the memory 76 (FIG. 2) at step 768. If the program waspreviously scheduled, test 770 is performed to determine if the viewerconfirmed the deletion of the previously scheduled program from thescheduled viewing list. This may be accomplished in the manner describedabove for the test 760. If the deletion is confirmed, the control unit74 (FIG. 2) deletes the entry for the selected program from therecording list at step 772.

[0162] At test 774, the control unit 74 (FIG. 2) determines if theviewer selected the “View Scheduled Viewing List” player menu choice. Ifso, the scheduled viewing list stored in the memory 76 (FIG. 2) isdisplayed on the display 84 (FIG. 2) at step 776. At test 778, thecontrol unit 74 (FIG. 2) waits for the viewer to press the Select key onthe remote control 78 (FIG. 2). Once the Select key is pressed, thescheduled viewing list is removed from the display 84 (FIG. 2) at step780.

[0163] At test 782, the control unit 74 (FIG. 2) determines if theviewer selected the “View Recording List” player menu choice. If so, therecording list stored in the memory 76 (FIG. 2) is displayed on thedisplay-84 (FIG. 2) at step 784. At test 786, the control unit 74 (FIG.2) waits for the viewer to press the Select key on the remote control 78(FIG. 2). Once the Select key is pressed, the recording list is removedfrom the display 84 (FIG. 2) at step 788.

[0164] At test 790, the control unit 74 (FIG. 2) determines if theviewer selected the “Other Times” player menu choice. If so, at step792, the control unit 74 (FIG. 2) searches the program scheduleinformation stored in the memory 76 (FIG. 2) to determine if theselected program is scheduled for telecast at times other than theselected time. The list of alternative viewing times is displayed on thedisplay 84 (FIG. 2). At test 794, the control unit 74 (FIG. 2) waits forthe viewer to press the Select key on the remote control 78 (FIG. 2).Once the Select key is pressed, the list of alternative viewing times isremoved from the display 84 (FIG. 2) at step 796.

[0165] At test 798, the control unit 74 (FIG. 2) determines if theviewer selected the “Exit” player menu choice. If so, the control isreturned to the routine from which the Selection routine 738 was invokedat step 800.

[0166] At test 802, the control unit 74 (FIG. 2) determines if theviewer pressed the Menu key on the remote control 78 (FIG. 2). If so,the Quickmenu routine (FIGS. 14-15) is invoked at step 804. After test802, the control unit 74 (FIG. 2) loops back to step 746 to wait for theviewer's selection.

[0167] FIGS. 19-21 represent the Program Search routine 806. After theProgram Search routine 806 is invoked, the control unit 74 (FIG. 2)retrieves the selection criteria from the memory 76 (FIG. 2) at step808. At step 810, the control unit 74 (FIG. 2) sets the active selectioncriterion to the default selection criterion indicated by theoperational parameters stored in the memory 76 (FIG. 2). At step 812, asubset of the selection criteria are displayed in the select menu 202(FIG. 7), with the default selection criterion appearing in the activeselection criterion cell 208 (FIG. 7). At step 814, the select menu 202(FIG. 7) is designated the active menu.

[0168] At step 816, the sort attributes associated with the activeselection criterion are retrieved from the memory 76 (FIG. 2). At step818, the control unit 74 (FIG. 2) sets the active sort attribute to thedefault attribute indicated by the operational parameters stored in thememory 76 (FIG. 2) for the active selection criterion. At step 820, asubset of the sort attributes are displayed in the sort menu 204 (FIG.7), with the default sort attribute appearing in the active sortattribute cell 214 (FIG. 7).

[0169] At step 822, the control unit 74 (FIG. 2) retrieves from thememory 76 (FIG. 2) program schedule information for programs meeting theactive selection criterion. The retrieved programs are sorted inaccordance with the active sort attribute at step 824. At step 826, theselected programs are displayed in the appropriate order in the programmenu 206 (FIG. 7) on the display 84 (FIG. 2). The control unit 74 (FIG.2) also causes the display 84 (FIG. 2) to display the total number ofprograms found and the group headers in the program menu 206 (FIG. 2).

[0170] At test 828, the control unit 74 (FIG. 2) checks if the viewerpressed the Left or Right Arrow key on the remote control 78 (FIG. 2).If not, the control unit 74 (FIG. 2) proceeds to step 832. Otherwise,the control unit 74 (FIG. 2) first sets the active menu to the menuchosen by the viewer (either the select menu 202 (FIG. 7), the sort menu204 (FIG. 7), or the program menu 206 (FIG. 7)) at step 830 beforeproceeding to step 832. At step 832, the control unit 74 (FIG. 2) causesthe display 84 (FIG. 2) to display a cursor in the active menu.

[0171] At test 834, the control unit 74 (FIG. 2) checks if the viewerpressed the Up or Down Arrow key on the remote control 78 (FIG. 2). Ifnot, the control unit 74 (FIG. 2) proceeds to step 836. However, if oneof these keys was pressed, the result depends on which menu is currentlyactive. If the control unit 74 (FIG. 2) determines at test 838 that theselect menu 202 (FIG. 7) is active, steps 840 and 842 are performed toscroll the select menu 202 (FIG. 7) in the appropriate direction, and toset the active selection criterion to the selection criterion displayedin the active selection criterion cell 208 (FIG. 7) after scrolling. Ifthe control unit 74 (FIG. 2) determines at test 844 that the sort menu204 (FIG. 7) is active, steps 846 and 848 are performed to scroll thesort menu 204 (FIG. 7) in the appropriate direction, and to set theactive sort attribute to the sort attribute displayed in the active sortattribute cell 214 (FIG. 7) after scrolling.

[0172] If the control unit 74 (FIG. 2) determines at test 850 that theprogram menu 206 (FIG. 2) is active, test 852 is performed to determineif the next program in the direction indicated by the key pressed by theviewer is currently displayed in the program menu 206 (FIG. 7). If itis, the cursor is moved to the next program at step 854. Otherwise, theprogram menu 206 (FIG. 7) is first scrolled before step 854 isperformed.

[0173] At step 836, the control unit 74 (FIG. 2) sets a pointer to theprogram that was most recently highlighted in the program menu 206 (FIG.7). At test 858, the control unit 74 (FIG. 2) checks if the viewerpressed Select key on the remote control 78 (FIG. 2). If not, thecontrol unit 74 (FIG. 2) proceeds to test 862. Otherwise, test 862 isperformed to determine if the program menu 206 (FIG. 2) is the activemenu. If it is not, the control unit 74 (FIG. 2) proceeds to test 860.Otherwise, control is passed to the Selection routine (FIGS. 16-18) atstep 864.

[0174] At test 860, the control unit 74 (FIG. 2) checks if the viewerpressed the Menu key on the remote control 78 (FIG. 2). If not, thecontrol unit 74 (FIG. 2) loops back to step 816. Otherwise, controlpasses to the Quickmenu routine (FIGS. 14-15) at step 866 before thecontrol unit 74 (FIG. 2) loops back to step 816.

[0175]FIGS. 22 and 23 represent the Day to View routine 866. At step868, control unit 74 (FIG. 2) causes the display 84 (FIG. 2) to displaythe calendar menu 302 (FIG. 8) for the current month on the screen 300(FIG. 8). At step 870, the calendar cells corresponding to dates forwhich program schedule information is available in the memory 76 (FIG.2) are highlighted. At step 872, the control unit 74 (FIG. 2) causes thedisplay 84 (FIG. 2) to display the day part menu 304. At step 874, thecalendar cursor is placed on the calendar cell corresponding to thecurrent date. At step 876, the day part cursor is placed on the day partcell corresponding to the current day part.

[0176] The control unit 74 (FIG. 2) then proceeds to perform a series oftests determine if the viewer pressed the Right, Left, Down, or Up ArrowKey. If the control unit 74 (FIG. 2) determines at test 878 that theRight Arrow key was pressed, test 880 is performed to determine if thenext calendar cell to be highlighted is currently displayed. If it is,the cursor is moved to the next calendar cell at step 882. If not, thecontrol unit 74 (FIG. 2) causes the calendar menu 302 (FIG. 8) toadvance to the next month at step 884 before step 882 is performed.

[0177] If the control unit 74 (FIG. 2) determines at test 886 that theLeft Arrow key was pressed, test 888 is performed to determine if theprevious calendar cell is currently displayed. If it is, the cursor ismoved to the previous calendar cell at step 890. If not, the controlunit 74 (FIG. 2) causes the display 84 (FIG. 2) to display the previousmonth in the calendar menu 302 (FIG. 8) at step 892 before step 890 isperformed.

[0178] If the control unit 74 (FIG. 2) determines at test 894 that theviewer pressed the Down Arrow key, the day part cursor is moved to thenext day part displayed in the day part menu 304 (FIG. 8) at step 896.If the control unit 74 (FIG. 2) determines at test 898 that the viewerpressed the Up Arrow key, the day part cursor is moved to the previousday part displayed in the day part menu 304 (FIG. 8) at step 900. Itshould be noted that both the calendar menu 302 (FIG. 8) and the daypart menu 304 (FIG. 8) preferably operate in an endless loop fashion.Thus, if the viewer tries to advance the cursor beyond the last choicein either of the menus, the cursor wraps to the first choice. The sameprinciple applies in the reverse direction as well.

[0179] At step 902, the control unit 74 (FIG. 2) sets a pointer to thedate and day part selected by the viewer (i.e., the highlightedchoices). At test 904, the control unit 74 (FIG. 2) checks if the viewerpressed the Select key. If the Select key was pressed, control is passedto the Program Guide routine (FIGS. 12-13) at step 906. If not, at test908, the control unit 74 (FIG. 2) checks if the viewer pressed the Menukey. If the Menu key was pressed, the Quickmenu routine (FIGS. 14-15) isinvoked at step 910. If not, or if the viewer chooses to leave thequickmenu 116 (FIG. 3), the control unit 74 (FIG. 2) loops back to thetest 878.

[0180] FIGS. 24-28 represent the Favorite Channel routine 912. At step914, the control unit 74 (FIG. 2) causes the display 84 (FIG. 2) todisplay the full line-up menu 402 (FIG. 9). At step 916, the menu 402(FIG. 9) is designated as active. At step 918, the control unit 74 (FIG.2) retrieves the viewer's favorite channel line-up from the memory 76(FIG. 2), if one exists. The favorite channel menu 404 (FIG. 9), isdisplayed on the display 84 (FIG. 9) at step 920. At step 922, theselect icon 414 (FIG. 9) is displayed.

[0181] At test 924, the control unit 74 (FIG. 2) checks if the viewerpressed the Left or Right Arrow key. If not, the cursor is displayed inthe active menu at step 926. Otherwise, the active menu is set to themenu chosen by the viewer (i.e., the full line-up menu 402 (FIG. 9), thefavorite channel menu 404 (FIG. 9), or the select icon 414 (FIG. 9)) atstep 928 before step 926 is performed.

[0182] At test 930, the control unit 74 (FIG. 2) checks if the viewerpressed the Up or Down Arrow key. If not, the control unit 74 (FIG. 2)proceeds to test 932. Otherwise, tests 934 and 942 are performed. Attest 934, the control unit 74 (FIG. 2) determines if the full line-upmenu 402 (FIG. 9) is active. If it is, test 936 is performed todetermine if the next channel to be highlighted in the full line-up menu402 (FIG. 9) is currently displayed. If it is, at step 938, the cursoris moved to the next channel in the full line-up menu 402 (FIG. 9) asindicated by key pressed by the viewer. Otherwise, step 940 is firstperformed to scroll the full line-up menu 402 (FIG. 9).

[0183] At test 942, the control unit 74 (FIG. 2) determines if thefavorite channel menu 404 (FIG. 9) is active. If it is, test 944 isperformed to determine if the next channel to be highlighted in thefavorite channel menu 404 (FIG. 9) is currently displayed. If it is, atstep 946, the cursor is moved to the next channel in the favoritechannel menu 404 (FIG. 9) as indicated by the key pressed by the viewer.Otherwise, step 948 is first performed to scroll the favorite channelmenu 404 (FIG. 9).

[0184] At test 932, the control unit 74 (FIG. 2) checks if the viewerpressed the Select key. If not, the control unit 74 (FIG. 2) then checksif the viewer pressed the Menu key at test 950. If not, the control unit74 (FIG. 2) loops back to test 924. If the Menu key was pressed, theQuickmenu routine (FIGS. 14-15) is invoked at step 952. If the viewerthen leaves the quickmenu 116 (FIG. 3) without making a selection, thecontrol unit 74 (FIG. 2) then loops back to the step 924.

[0185] If the control unit 74 (FIG. 2) determines that the viewerpressed the Select key at test 932, test 954 is performed to determineif the full line-up menu 402 (FIG. 9) is active. If it is, the controlunit 74 (FIG. 2) sets a pointer to the highlighted channel at step 956.Test 958 is then performed to determine if the first opening in thefavorite channel menu 404 (FIG. 9) is currently displayed. If it is, atstep 960, the cursor is moved to the first open cell in the favoritechannel menu 404 (FIG. 9). Otherwise, step 962 is first performed toscroll the favorite channel menu 404 (FIG. 9) by an amount sufficient todisplay the first open cell. At step 964, the channel referenced by thepointer set at step 956 is displayed in the highlighted cell of thefavorite channel menu 404 (FIG. 9).

[0186] At test 966, the control unit 74 (FIG. 2) again checks if theviewer pressed the Select key. If not, test 968 is performed to check ifthe viewer pressed the Up or Down Arrow key. If not, the control unit 74(FIG. 2) loops back to the test 966 to wait for the viewer to presseither the Select, Up Arrow, or Down Arrow key. If the viewer pressedthe Up or Down Arrow key, test 970 is performed to determine if the nextopening in the favorite channel menu 404 (FIG. 9) is currentlydisplayed. If it is, at step 972, the cursor is moved to the nextopening in the favorite channel menu 404 (FIG. 9) as indicated by thekey pressed by the viewer. Otherwise, step 974 is first performed toscroll the favorite channel menu 404 (FIG. 9) by an amount sufficient todisplay the next opening. After step 972, the control unit 74 (FIG. 2)loops back to step 964.

[0187] If the control unit 74 (FIG. 2) determines at test 966 that theviewer pressed the Select key, the channel highlighted in the favoritechannel menu 404 (FIG. 9) is temporarily inserted into the viewer'sfavorite channel line-up at step 976. At step 978, the previous contentsof the favorite channel menu 404 (FIG. 9) is replaced with the newtemporary favorite channel line-up. At step 980, the cursor is returnedto the full line-up menu 402 (FIG. 9). The control unit 74 (FIG. 2) thenloops back to test 924.

[0188] If the control unit 74 (FIG. 2) determines at test 954 that thefull line-up menu 402 (FIG. 9) is not active, test 982 is performed todetermine if the favorite channel menu 404 (FIG. 9) is active. If it is,the channel highlighted in the favorite channel menu 404 (FIG. 9) istemporarily deleted from the viewer's favorite channel line-up at step984. At step 986, the contents of the favorite channel menu 404 (FIG. 9)is replaced with the new temporary favorite channel line-up, with anopening being left in the cell previously occupied by the recentlydeleted favorite channel.

[0189] If the control unit 74 (FIG. 2) determines at test 982 that thefavorite channel menu 404 (FIG. 9) is not active, test 988 is performedto determine if the select icon 414 (FIG. 9) is active. If it is, thetemporary favorite channel line-up is stored for future use in thememory 76 (FIG. 2) at step 990. Otherwise, the control unit 74 (FIG. 2)loops back to test 924.

[0190] Thus it is seen that interactive television program guide systemsand related processes are provided that include an intuitive searchutility for allowing a viewer to locate programs of interest by applyinga restrictive search selection criterion and a nonrestrictive sortattribute to program schedule information. One skilled in the art willappreciate that the present invention can be practiced by other than thedescribed embodiments, which are presented for purposes of illustrationand not of limitation, and the present invention is limited only by theclaims which follow.

What is claimed is:
 1. An interactive program guide system for allowingviewer selection of television programs from selected program scheduleinformation displayed on a display, the system comprising: tuningcircuitry for receiving as input, television signals corresponding to aplurality of television channels and for providing an output televisionsignal corresponding to a selected one of said channels; memory forstoring program schedule information; a user input device for providinguser inputs including a nonrestrictive program sort attribute, and aprogram choice; and a control unit for (a) receiving said user inputs,(b) selecting from said memory, program schedule information meetingsaid restrictive program selection criterion for display on saiddisplay, (c) causing said display to display said selected programschedule information in an order prescribed by said nonrestrictiveprogram sort attribute, and (d) causing said tuning circuitry to providesaid output television signal in accordance with said program choicemade from said selected program schedule information.